Since the launch of the Earth Resources Technological Satellites (ERTS and now LANDSAT) in 1972, researchers in image processing and remote sensing have searched and continue to search for a better, more efficient way to extract objects from image data. One of the ways to achieve this goal has been through the use of higher technology hardware architectures, algorithms, and programming languages.
In the 1970s, this field was relatively new, and free thinking and approaches were highly encouraged. As a result, a number of innovative image processing languages were developed and tested. LANGUAGES AND ARCHITECTURE FOR IMAGE PROCESSING (Duff, M. J. B. and Levialdi, S., editors, 1991: Academic Press) discussed these early high level languages, providing examples which appeared, respectively, at the pages therein, referenced as follows: (1) PICASSO-SHOW, p. 18 et seq, (2) L-language, p. 39, (3) MAC, p. 48 et seq, (4) PIXAL, p. 95 et seq, and (5) IFL, p. 113. Also known is the LISP language, its use for image processing being described in THE ELEMENTS OF ARTIFICIAL INTELLIGENCE: An Introduction Using LISP (Tanimoto, Steven L., Computer Science Press, p. 400 et seq). Finally, as described hereinbelow, natural language has also been applied to image processing. As illustrated in Duff and Levialdi, none of these languages was English-like. Therefore, none could be understood by average, lay users.
In a general sense, a computer is designed to compute and solve a problem by using a software system. For the machine system to be very efficient, the software should be written with a low level language. This approach comes with a high price in developing and coding a solution algorithm. On the other end of the spectrum, developing and coding a high level language algorithm is much less costly; however, computing time is much longer. Therefore, one of the important aspects of computer science is to seek to optimize the machine/algorithm system by comprising from both ends, making the machine is an extension of the algorithm. The algorithm is also the extension of the machine system as noted by Wood in “The Interaction between Hardware, Software and Algorithms,” in Duff and Levialdi. While this paradigm has worked very well for the past 40 years or more, the ability of users in problem solving is totally missing.
Since the early 1980s, researchers have noticed that under the hardware/software interaction paradigm, few people (except programmers) can truly communicate with a machine system. Attempting to correct this obvious deficiency, researchers have begun to develop human-based, and specifically, English-based interface systems as a part of natural language processing. The result has largely been in the domain of a man-machine dialogue, as shown in Table 1, reprinted from Duff and Levialdi, p. 218.
TABLE 1An Example of Using English as a User/Machine Communication MeansWhat Fortran files do I have? /* a user asks the machine */GAUSS FORGAUSS2 FOR/* the machine responds */MATRIX FOR
The extension of this approach is the current standard query language (SQL) and expert system/knowledge based system.
While introduction of natural language processing into a hardware/software/algorithm system has integrated users into a problem solving system, the ability of a user is ignored, because a cognitive process in solving a problem has not taken place. This is true because: (1) the user cannot understand the language used in the algorithm; and (2) the English-based, man-machine dialogue boxes cannot guide the user to solve the problem. This condition has not changed since the mid-1980s, as evidenced by an expert system language called LISP, which was popular in the late 1980s, and IDL, a current, relatively high level interactive data language for image processing and visualization.
In summary, none of these historical and current image processing related languages has been able to guide the user to develop a solution algorithm, and improve his or her skills in object extraction by interacting with the vocabularies and syntax of the language. In other words, there has been no cognitive process in problem solving experienced by the users of these languages.
More generally, it has been found that any task, relatively simple or complex, in any field of endeavor, can be subject to learning by an unsophisticated or underskilled, but trainable user. Thus, the technique to which this invention is directed is applicable to a wide variety of subject matter, especially when combined with simulation systems, in fields including, but not limited to: medicine (surgery), electronics, science, architecture, cooking, language, crafts, music, engine repair, aircraft and other machine operation, inventory control, and business. For purposes of explanation herein, however, the following disclosure is related to an environment of image processing; but it should be understood that the invention, as defined by the appended claims, is meant to encompass training techniques used in all suitable fields or subject matter, in which a relatively unskilled or underskilled trainee can become an expert.
It would be advantageous to provide users with a programming language that uses their own vocabularies, phrases and concepts or those of photo-interpreters to generate rule sets that are compilable to object extraction programs in real time.
It would be doubly advantageous, if the users are novices to begin with, to allow them to become experts without knowing any computer language; and if the users are experts, their knowledge can be captured, tested, and preserved for future users.
It would also be advantageous to provide users with an intelligent graphic panel for users to generate expert system code with a few or even no keystrokes.
It would further be advantageous to provide users with an intelligent editor for users to generate complex expert system code with a few or even no keystrokes.
It would still further be advantageous to provide users with an open, flexible, and editable expert system to capture the knowledge of experts in the field.
It would also be advantageous to provide users with an open, flexible, and editable expert system for testing and modifying an existing expert system.
It would further be advantageous to provide users with a programming language and related graphic user interface (GUI) and editor sub-systems to guide users to build solution systems of object extraction, helping them to become experts.
It would still further be advantageous to provide users with means to generate object-based transformations from multispectral and hyperspectral image data to guide them in building solution algorithms in object extraction.
It would also be advantageous to provide users with a means to generate fraction planes from a hyperspectral image cube in substantially real time to guide users to develop object extraction algorithms.
It would further be advantageous to provide users with a means to estimate the confidence of an object extraction process, be it coming from a rule based system, a matching analysis, or a combination of both.